home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / misc / emu / Apex-src.lha / SYSPAG.68K < prev    next >
Text File  |  2001-09-30  |  8KB  |  237 lines

  1. ;SYSPAG.68K    DEC-04-89
  2. ;System page module for Apex
  3. ;Written by Loren Blaney
  4. ;This is based on 6502 code written by P.J.R.Boyle.
  5. ;
  6. ;REVISION HISTORY:
  7. ;FEB-15-86, Original written for DFM Engineering
  8. ;MAY-05-86, Converted to ASM68K CONVENTIONS
  9. ;SEP-24-86, Revised
  10. ;DEC-08-86, Changed CURSORY to handle second terminal (device 1)
  11. ;FEB-16-87, Changed MEMTOP for Amiga system, also shifted comments to
  12. ; lowercase, changed VMON to VBUG.
  13. ;JUN-24-88, Added console variables.
  14. ;FEB-25-89, Added conditional assembly flag A1000.
  15. ;DEC-04-89, Added EOTFLG for XMODEM device.
  16. ;
  17. ;NOTES:
  18. ;This module defines the addresses of parameters which are common to
  19. ; many programs. Note that this module only defines locations, and it
  20. ; does not set the contents of these locations. The contents are set by
  21. ; other modules which INCLUDE this module to get these address
  22. ; definitions. Because many programs depend on these addresses, they
  23. ; should not be changed.
  24. ;
  25. ;This "page" (the frist 256 bytes) is saved along with a memory image as
  26. ; part of a .SAV file. It provides Apex with essential information for
  27. ; loading and starting a program contained in the .SAV file.
  28. ;
  29. ;-----------------------------------------------------------------------
  30. ;MISCELLANEOUS DEFINITIONS:
  31. ;
  32. MEMTOP    EQU    $80000        ;Highest memory location +1
  33.                 ;Apex is loaded just below this point
  34. ;BOOLEANS:
  35. FALSE    EQU    0
  36. TRUE    EQU    ~FALSE
  37.  
  38. A1000    EQU    TRUE        ;Amiga-1000 is used (vs. 2000 or 500)
  39.  
  40. ;ASCII CHARACTERS:
  41. NUL    EQU    $00        ;Null character
  42. BEL    EQU    $07        ;Bell
  43. BS    EQU    $08        ;Back space
  44. TAB    EQU    $09        ;Tab
  45. LF    EQU    $0A        ;Line feed
  46. FF    EQU    $0C        ;Form feed (screen clear)
  47. CR    EQU    $0D        ;Carriage return
  48. FWDSP    EQU    $15        ;Forward space (arrow)
  49. EOF    EQU    $1A        ;End of file
  50. ESC    EQU    $1B        ;Escape
  51. SPACE    EQU    $20        ;Space
  52. CTRL    EQU    $40        ;Amount subtracted to make control char
  53. DEL    EQU    $7F        ;Delete
  54.  
  55. ;-----------------------------------------------------------------------
  56. ;PROGRAM START AND EXIT VECTORS:
  57. ;
  58. SYSPAG    ORG    $0400        ;Right above hardware vectors
  59.  
  60. VSTART    DS.W    3        ;Program start entry point
  61. VRSTRT    DS.W    3        ;Program restart entry point
  62. VEXIT    DS.W    3        ;Program normal exit address (CTRL-C)
  63. VERR    DS.W    3        ;Program error exit address
  64. VABORT    DS.W    3        ;Program abort exit address (CTRL-P)
  65.     DS.W    6        ;Spares
  66.  
  67. ;-----------------------------------------------------------------------
  68. ;These are the load parameters for .SAV files. The intrinsics FRUN,
  69. ; FGET, and FSAVE require them.
  70. DSKMEM    DS.L    1        ;Base address of memory image on disk
  71. DSKSIZ    DS.L    1        ;Size of the image in blocks (not
  72.                 ; including SYSPAG)
  73. ;These are written by APEX.XPL (or set up by the user program) then
  74. ; copied to DSKMEM & DSKSIZ by FSAVE and FASAVE. (They are required
  75. ; because SCRATCH.SYS needs uncorrupted load parameters.)
  76. USRMEM    DS.L    1        ;Base address of user program
  77. PROSIZ    DS.L    1        ;User program size in blocks (not
  78.                 ; including SYSPAG)
  79.     DS.L    8        ;Spares for more user program segments
  80.  
  81. ;-----------------------------------------------------------------------
  82. RERUNF    DS.B    1        ;Rerun flag: cleared by FRUN; set by
  83.                 ; RESTART intrinsic. Used to distinguish
  84.                 ; a first-time start from a restart.
  85. DEXTO    DS.B    3        ;Default extension for output file
  86.     DS.B    3
  87. DEXTI    DS.B    3        ;Default extension for input file
  88.     DS.B    3
  89. DEFAUL    DS.B    1        ;Flags: backup, size limit, keep date
  90. SYBOMB    DS.B    1        ;Flag: user program bombs system
  91.                 ; (=$55 if Apex is loaded)
  92.     DS.L    1
  93. HEAP    DS.L    1        ;Base address of heap
  94. STACK    DS.L    1        ;User's stack grows down from here
  95.     DS.L    4        ;Spares
  96.  
  97. ;-----------------------------------------------------------------------
  98. ;MEMORY SPACE ALLOCATED FOR DISK I/O BUFFERS:
  99. OTBUF    DS.L    1        ;Base of output buffer
  100. OTBUFE    DS.L    1        ;End of output buffer +1
  101. INBUF    DS.L    1        ;Base of input buffer
  102. INBUFE    DS.L    1        ;End of input buffer +1
  103.     DS.L    8        ;Spares for more input file buffer specs
  104.  
  105. ;=======================================================================
  106. ;The rest of this system "page" is not saved with the .SAV file, but
  107. ; rather is loaded during the original bootup process.  It remains
  108. ; unchanged during normal operation.
  109. ;
  110.     ORG    $0500
  111. SYSENF    DS.B    1        ;Sysem entry flag: shows re-entry mode
  112. SYSUNT    DS.B    1        ;Unit that SYSTEM.SYS is on
  113. SYSBLK    DS.L    1        ;Block where SYSTEM.SYS starts
  114. SWPBLK    DS.L    1        ;Block where SCRATCH.SYS starts
  115. SYSDAT    DS.L    1        ;System date (i.e: today)
  116.     DS.L    1        ;Spare
  117.  
  118. VALUNT    DS.B    1        ;Bit array: indicates valid units
  119. LOKMSK    DS.B    1        ;Bit array: shows write-locked units
  120. UNTUPD    DS.B    1        ;Bit array: units needing update, unused
  121.  
  122. DEFUNT    DS.B    1        ;Default unit number (0-7)
  123.  
  124.     DS.W    1        ;DEVHAN uses the low byte of a word
  125. DEVICE    EQU    @-1        ;Current byte I/O device number (0-7)
  126.  
  127. ERRTRAP    DS.B    1        ;Flag: trap (report) errors
  128. ERRUNT    DS.B    1        ;Unit number when error occurred
  129. ERRDEV    DS.B    1        ;Device number when error occurred
  130. ERRLOC    DS.L    1        ;Address of error
  131.  
  132.     DS.L    8        ;Spares
  133.  
  134. ;-----------------------------------------------------------------------
  135. ;I/O PARAMETERS FOR UNIT HANDLERS:
  136. ;
  137.     DS.W    1        ;UNTHAN uses the low byte of a word
  138. UNIT    EQU    @-1        ;Unit number (0-7)
  139. BLKNO    DS.L    1        ;First block of file
  140. BLKNOX    DS.L    1        ;First block of file with offset added
  141. NBLKS    DS.L    1        ;Number of blocks to transfer
  142. FADDR    DS.L    1        ;Memory address
  143. ENDBLK    DS.L    1        ;Last block of file
  144.  
  145. ;OUTPUT FILE PARAMETERS:
  146. OTLBLK    DS.L    1        ;First block of output file
  147. OTHBLK    DS.L    1        ;Last block of output file
  148. OTFLG    DS.B    1        ;Status flags (1 = SETUP)
  149. OTNO    DS.B    1        ;Directory number of output file
  150. OTUNT    DS.B    1        ;Unit number which output file is on
  151.  
  152. ;INPUT FILE PARAMETERS:
  153. INLBLK    DS.L    1        ;First block of input file
  154. INHBLK    DS.L    1        ;Last block of input file
  155. INFLG    DS.B    1        ;Status flags
  156. INNO    DS.B    1        ;Directory number of input file
  157. INUNT    DS.B    1        ;Unit number which input file is on
  158.  
  159.     DS.L    6        ;Spares
  160.  
  161. ;-----------------------------------------------------------------------
  162. ;UNIT HANDLER TABLES
  163. ; These tables specify parameters for a maximum of 8 units.
  164. ;
  165. ;UNIT LIMIT TABLE:
  166. ; Contains the last physical block + 1 allocated for a sub-unit.
  167. MAXTBL    DS.L    8
  168.     DS.L    8        ;Spares
  169.  
  170. ;UNIT OFFSET TABLE:
  171. ; Contains the first physical block number for each unit. The logical
  172. ; blocks in a sub-directory are relative to these base blocks.
  173. OFFTBL    DS.L    8
  174.     DS.L    8        ;Spares
  175.  
  176. ;UNIT ENTRY POINT TABLE:
  177. UNTTBL    DS.L    8
  178.     DS.L    8        ;Spares
  179.  
  180. ;BYTE I/O DEVICE HANDLER ENTRY POINT TABLE:
  181. DEVTBL    DS.L    8
  182.     DS.L    8        ;Spares
  183.  
  184. ;-----------------------------------------------------------------------
  185. ;CONSOLE PARAMETERS:
  186. ;
  187. HASH    DS.L    1        ;Randomizer, spun by keyboard wait loop
  188. CMDMOD    DS.B    1        ;Flag: command file mode
  189.  
  190. ;Cursor position coordinates. 0,0 = upper left corner.
  191. ; WARNING: These are not correct if a line > 80 chars is displayed.
  192. CURSORX    DS.B    2        ;X cursor positions for devices 0 and 1
  193. CURSORY    DS.B    2        ;Y cursor positions for devices 0 and 1
  194.  
  195. LINPTRF    DS.L    1        ;Fill pointer for line buffer
  196. LINPTRE    DS.L    1        ;Empty pointer for line buffer
  197. CMDPTR    DS.L    1        ;Pointer into CMDBUF
  198.  
  199. CHKUSRF    DS.B    1        ;Flag: enable CHKUSR, CTRL-C aborts etc.
  200.     DS.B    1        ;Spare
  201. CONWIDE    DS.B    1        ;Console width in characters
  202. CONHIGH    DS.B    1        ;Console height in characters
  203. EOTFLG    DS.B    1        ;Flag: EOT received by XMODEM
  204.     DS.B    7        ;Spares
  205.  
  206. LINBUF    DS.B    256        ;Line buffer (256 characters)
  207. LINBUFE    EQU    @        ;Last location +1
  208. CMDBUF    EQU    LINBUF        ;.CMD files share the line buffer
  209.  
  210. ;-----------------------------------------------------------------------
  211. ;LINK VECTORS TO RESIDENT ROUTINES:
  212. ;
  213. VBUG    DS.W    3        ;Debug monitor
  214. VRELOD    DS.W    3        ;Reload Apex from disk and start it
  215. VRENTR    DS.W    3        ;Re-enter Apex, reload it if bombed
  216. VSAVER    DS.W    3        ;Save memory image in SCRATCH.SYS and
  217.                 ; reload
  218. VFRUN    DS.W    3        ;Load and start a .SAV file
  219. VFGET    DS.W    3        ;Load a .SAV file and start the monitor
  220. VFSAVE    DS.W    3        ;Load SCRATCH.SYS and write a .SAV file
  221. VFASAVE    DS.W    3        ;Write SYSTEM.SYS
  222. VFSCAN    DS.W    3        ;Scan directory for a file name
  223.  
  224. VUNTHAN    DS.W    3        ;Main unit handler
  225. VDEVHAN    DS.W    3        ;Main device handler
  226.  
  227. VSHOERR    DS.W    3        ;Record system error
  228. VERROR    DS.W    3        ;Display system error message
  229.  
  230. ;----------------------------------------------------------------------
  231. ;
  232. INTTBL    EQU    $800        ;XPL intrinsics jump table
  233.  
  234. ;End of SYSPAG
  235. -----------------------------------------------------------
  236. ;
  237. INTTBL    EQU    $800        ;XPL in